package com.jeesite.modules.video.entity;

import javax.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.BaseEntity;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 微课视频Entity
 * @author xhc
 * @version 2022-10-12
 */
@Table(name="dc_sup_video", alias="a", label="微课视频信息", columns={
		@Column(name="id", attrName="id", label="主键", isPK=true),
		@Column(name="video_name", attrName="videoName", label="视频名称", queryType=QueryType.LIKE),
		@Column(name="video_describe", attrName="videoDescribe", label="视频描述"),
		@Column(name="upload_by", attrName="uploadBy", label="上传人"),
		@Column(name="upload_date", attrName="uploadDate", label="上传时间", isUpdateForce=true),
		@Column(name="video_status", attrName="videoStatus", label="视频状态", comment="视频状态：0正常1删除2隐藏"),
		@Column(name="download_num", attrName="downloadNum", label="下载次数", isUpdateForce=true),
		@Column(name="create_by", attrName="createBy", label="创建人", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false, isUpdateForce=true),
		@Column(name="update_by", attrName="updateBy", label="更新人", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false, isUpdateForce=true),
		@Column(name="remarks", attrName="remarks", label="备注", queryType=QueryType.LIKE),
		@Column(includeEntity=BaseEntity.class),
		@Column(name="remarks1", attrName="remarks1", label="备用字段1", queryType=QueryType.LIKE, isUpdateForce=true),
		@Column(name="remarks2", attrName="remarks2", label="备用字段2", queryType=QueryType.LIKE),
		@Column(name="remarks3", attrName="remarks3", label="备用字段3", queryType=QueryType.LIKE),
		@Column(name="remarks4", attrName="remarks4", label="备用字段4", queryType=QueryType.LIKE),
	}, orderBy="a.update_date DESC"
)
public class DcSupVideo extends DataEntity<DcSupVideo> {
	
	private static final long serialVersionUID = 1L;
	 /**
	 * 视频名称
	 */
	private String videoName;
	 /**
	 * 视频描述
	 */
	private String videoDescribe;
	 /**
	 * 上传人
	 */
	private String uploadBy;
	 /**
	 * 上传时间
	 */
	private Date uploadDate;
	 /**
	 * 视频状态：0正常1删除2隐藏
	 */
	private String videoStatus;
	 /**
	 * 下载次数
	 */
	private Long downloadNum;
	 /**
	 * 备用字段1
	 */
	private Long remarks1;
	 /**
	 * 备用字段2
	 */
	private String remarks2;
	 /**
	 * 备用字段3
	 */
	private String remarks3;
	 /**
	 * 备用字段4
	 */
	private String remarks4;
	private String fileId;
	private String fileName;
	private String fileUrl;

	public String getFileUrl() {
		return fileUrl;
	}

	public void setFileUrl(String fileUrl) {
		this.fileUrl = fileUrl;
	}

	public String getFileId() {
		return fileId;
	}

	public void setFileId(String fileId) {
		this.fileId = fileId;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public DcSupVideo() {
		this(null);
	}

	public DcSupVideo(String id){
		super(id);
	}
	
	@Size(min=0, max=64, message="视频名称长度不能超过 64 个字符")
	public String getVideoName() {
		return videoName;
	}

	public void setVideoName(String videoName) {
		this.videoName = videoName;
	}
	
	public String getVideoDescribe() {
		return videoDescribe;
	}

	public void setVideoDescribe(String videoDescribe) {
		this.videoDescribe = videoDescribe;
	}
	
	@Size(min=0, max=64, message="上传人长度不能超过 64 个字符")
	public String getUploadBy() {
		return uploadBy;
	}

	public void setUploadBy(String uploadBy) {
		this.uploadBy = uploadBy;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getUploadDate() {
		return uploadDate;
	}

	public void setUploadDate(Date uploadDate) {
		this.uploadDate = uploadDate;
	}
	
	@Size(min=0, max=10, message="视频状态长度不能超过 10 个字符")
	public String getVideoStatus() {
		return videoStatus;
	}

	public void setVideoStatus(String videoStatus) {
		this.videoStatus = videoStatus;
	}
	
	public Long getDownloadNum() {
		return downloadNum;
	}

	public void setDownloadNum(Long downloadNum) {
		this.downloadNum = downloadNum;
	}
	
	public Long getRemarks1() {
		return remarks1;
	}

	public void setRemarks1(Long remarks1) {
		this.remarks1 = remarks1;
	}
	
	@Size(min=0, max=200, message="备用字段2长度不能超过 200 个字符")
	public String getRemarks2() {
		return remarks2;
	}

	public void setRemarks2(String remarks2) {
		this.remarks2 = remarks2;
	}
	
	@Size(min=0, max=200, message="备用字段3长度不能超过 200 个字符")
	public String getRemarks3() {
		return remarks3;
	}

	public void setRemarks3(String remarks3) {
		this.remarks3 = remarks3;
	}
	
	@Size(min=0, max=200, message="备用字段4长度不能超过 200 个字符")
	public String getRemarks4() {
		return remarks4;
	}

	public void setRemarks4(String remarks4) {
		this.remarks4 = remarks4;
	}
	
}